package br.com.caelum.lojavirtual.logic;

import java.util.List;

import org.vraptor.annotations.Component;
import org.vraptor.annotations.InterceptedBy;
import org.vraptor.annotations.Out;
import org.vraptor.scope.ScopeType;

import br.com.caelum.lojavirtual.dao.DaoFactory;
import br.com.caelum.lojavirtual.modelo.Usuario;

@Component
@InterceptedBy({AutorizadorInterceptor.class,DaoInterceptor.class})
public class UsuarioLogic {
	
	private final DaoFactory daoFactory; 
	
	private List<Usuario> usuarios;
	
	public void lista(){
		usuarios = this.daoFactory.getUsuarioDao().listaTudo();
	}
	
	public UsuarioLogic(DaoFactory daoFactory) {
		this.daoFactory = daoFactory;
	}
	
	public void adiciona(Usuario usuario){
		this.daoFactory.beginTransaction();
		this.daoFactory.getUsuarioDao().adiciona(usuario);
		this.daoFactory.commit();
	}
	
	public void remove(Usuario usuario){
		this.daoFactory.beginTransaction();
		this.daoFactory.getUsuarioDao().remove(usuario);
		this.daoFactory.commit();
	}
	
	public void formulario() {
	}
	@Out(scope=ScopeType.SESSION)
	public List<Usuario> getUsuarios() {
		return usuarios;
	}
}
